package com.xbongbong.admin.domain.entity;

import com.xbongbong.paas.toolbox.wrap.Entity;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

/**
 * @author xingxing.xiao
 */
@Getter
@Setter
@ToString
@NoArgsConstructor
public class AppInstallEntity extends Entity {
    private static final long serialVersionUID = -4351320418429772115L;

    /**
     * 主键
     */
    private Long id;
    /**
     * 公司id
     */
    private String corpid;
    /**
     * 类型, 镜像mirror，若有其他应用再加
     */
    private String type;
    /**
     * 安装应用id
     */
    private Long appId;
    /**
     * 来源应用主键id
     */
    private Long sourceAppId;
    /**
     * 来源应用所属公司
     */
    private String sourceCorpid;
    /**
     * 删除标记
     */
    private Integer del;
    /**
     * 创建者userId
     */
    private String creatorId;
    /**
     * 创建时间时间戳
     */
    private Long addTime;

    /**
     * 更新时间时间戳
     */
    private Long updateTime;

    /**
     * 镜像id
     */
    private Long mirrorId;
    /**
     * 安装类型，1：应用；2：报表
     * @see com.xbongbong.pro.enums.mirror.enums.MirrorTypeEnum
     */
    private Integer installType;
    /**
     * 镜像应用类型，1：工单  2：系统应用表单 3：自定义应用
     * @see com.xbongbong.pro.enums.mirror.enums.MirrorApplicationTypeEnum
     */
    private Integer mirrorApplicationType;
    /**
     * 安装图表的分组id
     */
    private Long chartCategoryId;
    /**
     * 安装来源图表的分组id
     */
    private Long sourceChartCategoryId;
    /**
     * 安装表单id，json数组
     */
    private String  formIds;
    /**
     * 安装来源表单id，json数组
     */
    private String sourceFormIds;
    /**
     * 是否回退到初始化 (1,回退到初始化 ,2 未回退到初始化)
     */
    private Integer isToInit;
    /**
     * 是否回退到上一版本(1,回退到上一版本,2未回退到上一版本)
     */
    private Integer isToPrevious;
    /**
     * 标识表单镜像是否可以回退，1 可操作回退 2 不可操作回退
     * 注：当同一个应用安装多个镜像时，只有最新的那个镜像才可以回退
     */
    private Integer isBack;


    public AppInstallEntity (String corpid, String type, Long appId, Long sourceAppId, String sourceCorpid, String creatorId, Long mirrorId, Integer installType, Integer mirrorApplicationType, Integer isToInit, Integer isToPrevious) {
        this.corpid = corpid;
        this.type = type;
        this.appId = appId;
        this.sourceAppId = sourceAppId;
        this.sourceCorpid = sourceCorpid;
        this.creatorId = creatorId;
        this.del = 0;
        this.mirrorId = mirrorId;
        this.installType = installType;
        this.mirrorApplicationType = mirrorApplicationType;
        this.isToInit = isToInit;
        this.isToPrevious = isToPrevious;
    }
}
